package com.ic.es.controller;

import IC.common.core.domain.R;
import com.ic.domain.FaceDto;
import com.ic.domain.FaceRecognitionDTO;
import com.ic.domain.Faces;
import com.ic.es.result.PageResult;
import com.ic.es.service.EsFaceService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

/**
 * 控制层：负责处理人脸数据索引的REST API请求。
 *
 * @author 邹广烨
 * @version 1.0
 * @since 2024-7-18
 */
@RestController
@RequestMapping("/face")
@Log4j2
public class EsFaceController {
    /**
     * 服务层接口，用于索引人脸数据。
     */
    private final EsFaceService faceDataService;
    /**
     * 使用构造函数注入服务层实例。
     *
     * @param faceService 服务层接口实例。
     */
    @Autowired
    public EsFaceController(EsFaceService faceService) {
        this.faceDataService = faceService;
    }
    /**
     * 接收POST请求，用于索引人脸数据。
     *
     * @param
     */
    @PostMapping("/facedata")
    public void indexFaceData(@RequestBody FaceRecognitionDTO faceRecognitionDTO) {
        faceDataService.indexFaceData(faceRecognitionDTO);
    }

    /**
     * 接收POST请求，用于获取全部人脸数据。
     */
    //  TODO 目前查询只有人脸信息并无设备信息 应该为设备联查
    @PostMapping("/face/all")
    public R<PageResult<FaceRecognitionDTO>> getAllFaceData(@RequestBody FaceDto faceDto) {
        PageResult<FaceRecognitionDTO> allFaceData = faceDataService.getAllFaceData(faceDto);
        return R.ok(allFaceData); // 使用ResponseEntity包裹List<Faces>并返回
    }

//    @PostMapping("/comparison")
//    public void indexFaceData(@RequestBody FaceRecognitionDTO faceRecognitionDTO) {
//        faceDataService.indexFaceData(faceRecognitionDTO);
//    }

}
